Acabo de instalar Python 3.6.1 para MacOS X Cuando intento ejecutar la consola (o ejecutar cualquier cosa con Python3), aparece este error: AttributeError: el módulo 'enum' no tiene atributo 'IntFlag' $ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 No se pudo importar el módulo del sitio Rastreo (llamadas recientes más última): Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", línea 544, enprincipal() Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", línea 530, en main rutas_conocidas = addusersitepackages (rutas_conocidas) Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", línea 282, en addusersitepackages user_site = getusersitepackages () Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", línea 258, en getusersitepackages user_base = getuserbase () # esto también configurará USER_BASE Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", línea 248, en getuserbase USER_BASE = get_config_var ('base de usuarios') Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", línea 601, en get_config_var return get_config_vars (). get (nombre) Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", línea 580, en get_config_vars importar _osx_support Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", línea 4, en importar re Archivo "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", línea 142, en clase RegexFlag (enum.IntFlag): AttributeError: el módulo 'enum' no tiene atributo 'IntFlag' La clase IntFlag existe dentro de enum.py. Entonces, ¿por qué se lanza AttributeError?
2021-01-02 08:13:34
Es porque su enumeración no es el módulo de enumeración de la biblioteca estándar. Probablemente tenga instalado el paquete enum34. Una forma de comprobar si este es el caso es inspeccionar la propiedad enum .__ file__ import enum imprimir (enumeración .__ archivo__) # la ubicación estándar de la biblioteca debería ser algo como # /usr/local/lib/python3.6/enum.py Desde python 3.6, la biblioteca enum34 ya no es compatible con la biblioteca estándar. La biblioteca también es innecesaria, por lo que simplemente puede desinstalarla. desinstalar pip -y enum34 Si necesita que el código se ejecute en versiones de Python tanto <= 3.4 como> 3.4, puede intentar tener enum-compat como requisito. Solo instala enum34 para versiones anteriores de python sin la biblioteca estándar enum. | No estoy seguro de si aún tiene este problema. Tuve un problema similar y pude resolverlo simplemente desarmando PYTHONPATH $ unset PYTHONPATH | Para mí, este error se produjo después de instalar el componente de gcloud app-engine-python para integrarlo en pycharm. La desinstalación del módulo ayudó, incluso si pycharm ahora no se carga en app-engine. | Si alguien viene aquí debido a este error mientras ejecuta un proyecto de entorno estándar Python 3.7 del motor de aplicaciones de Google en PyCharm, entonces todo lo que necesita hacer es Asegúrese de que la configuración para ejecutar sea para Flask, no para la configuración de Google App Engine. Luego, desactive la compatibilidad con Google App Engine en Preferencias >> Idiomas y marco >> Google App Engine La razón es según este enlace. El objetivo general es que su aplicación sea completamente portátil y se ejecute en cualquier entorno estándar de Python. Escribe una aplicación Python estándar, no una aplicación Python de App Engine. Como parte de este cambio, ya no es necesario que utilice servicios y API de App Engine patentados para la funcionalidad principal de su aplicación. En este momento, las API de App Engine no están disponibles en el tiempo de ejecución de Python 3.7. Supongo que cuando creamos un proyecto de Python 3.7 en PyCharm como un proyecto de motor de aplicaciones de Google, todavía intenta hacer lo mismo que lo hace con una aplicación de Python2.7 | DESCARGO DE RESPONSABILIDAD: Por favor, @ juanpa.arrivillaga, si ve esta respuesta, no dude en escribir la suya propia y eliminaré esta publicación. @ juanpa.arrivillaga había mencionado anteriormente: ¿Existe un nombre de archivo enum.py en su directorio de trabajo, por casualidad? Este fue el problema que encontré. No conocía el módulo de enumeración en Python en ese momento y había nombrado mi archivo de prueba enum.py. Dado que el nombre del archivo es el nombre del módulo, hubo un conflicto. Más información sobre los módulos aquí: https://docs.python.org/2/tutorial/modules.html | Deshabilitar "Google App Engine Support" en las preferencias de Pycharm solucionó este problema. | La instalación de la versión 1.1.8 de enum34 funcionó para mí. Pude arreglar esto agregando enum34 = "== 1.1.8" a pyproject.toml. Aparentemente, enum34 tenía una característica en v1.1.8 que evitaba este error, pero esto retrocedió en v1.1.9 +. Sin embargo, esto es solo una solución. los una mejor solución sería que los paquetes usen marcadores de entorno, por lo que no es necesario instalar enum34 a menos que sea necesario. Fuente: https://github.com/python-poetry/poetry/issues/1122 | La respuesta de Håken Lid ayudó a resolver mi problema (¡gracias!), En mi caso presente en Python3.7 ejecutando Flask en un contenedor Docker (FROM tiangolo / uwsgi-nginx-flask: python3.7-alpine3.7). En mi caso, enum34 estaba siendo instalado por otra biblioteca (pip install smartsheet-python-sdk). Para aquellos que vienen con un problema similar de contenedor de Docker, aquí está mi último Dockerfile (despojado de las líneas relevantes): DESDE tiangolo / uwsgi-nginx-flask: python3.7-alpine3.7 ... EJECUTAR pip install -r requirements.txt EJECUTAR pip desinstalar -y enumeración34 ... | En caso de que tenga que mantener PYTHONPATH tanto para python2 como para python3, puede escribir declaraciones de alias para establecer el PYTHONPATH adecuado en su bash_profile: Codifique sus variables PYTHONPATH2 y PYTHONPATH3 en su ~ / .bash_profile, y agregue los siguientes alias al final: alias python = 'exportar PYTHONPATH = $ {PYTHONPATH2}; python' alias python3 = 'exportar PYTHONPATH = $ {PYTHONPATH3}; python3' Mi python (se refiere a python2) ya que uso python2 con más frecuencia. | Cuando alguna vez tengo este problema: AttributeError: el módulo 'enum' no tiene atributo 'IntFlag' simplemente primero ejecuto el comando: PYTHONPATH desarmado y luego ejecutar mi comando deseado y luego tener éxito en eso. | Lo hice usando pip install--ignore-installed enum34 Una vez que su biblioteca requerida esté instalada, busque advertencias durante la compilación. Recibí un error como este: Uso de la instalación heredada setup.py para el futuro, ya que el paquete 'rueda' no está instalado ERROR: pyejabberd 0.2.11 tiene el requisito enum34 == 1.1.2, pero tendrá enum34 1.1.10 que es incompatible . Para solucionar este problema, ejecute el comando: pip freeze | grep enum34. Esto le dará la versión del enum34 instalado. Ahora desinstálelo por pip desinstale enum34 y reinstale la versión requerida como pip install "enum34 == 1.1.20" | Si tiene este problema al ejecutar pruebas en PyCharm, asegúrese de que la segunda casilla no esté marcada en elconfiguraciones. | Tengo Python 2 y Python 3 instalados en mi computadora. Por alguna extraña razón, tengo en el sys.path de Python 3 también una ruta al directorio de la biblioteca del paquete de sitio de Python2 cuando se llama al módulo re. Si ejecuto Python 3 e importo enum e imprimo (enum .__ file__) el sistema no muestra esta ruta de Python 2 a los paquetes del sitio. Entonces, un truco muy rudo y sucio es modificar directamente el módulo en el que se importa enum (siga las rutas de rastreo) e inserte el siguiente código justo antes de importar enum: importar sys para i, p en enumerate (sys.path): si "python27" en p.lower () o "python2.7" en p.lower (): sys.path.pop (i) import enum Eso resolvió mi problema. | Incluso tuve este problema mientras ejecutaba python -m grpc_tools.protoc --version Tuve que configurar PYTHONPATH hasta los paquetes del sitio y cerrar todas las ventanas del símbolo del sistema y funcionó. Espero que ayude a los usuarios de gRPC. | Tuve este problema en ubuntu20.04 en jupyterlab en mi kernel env virtual con python3.8 y tensorflow 2.2.0. El mensaje de error era Rastreo (llamadas recientes más última): Archivo "/usr/lib/python2.7/runpy.py", línea 174, en _run_module_as_main "__main__", fname, loader, pkg_name) Archivo "/usr/lib/python2.7/runpy.py", línea 72, en _run_code código exec en run_globals Archivo "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel_launcher.py", línea 15, en desde ipykernel importar kernelapp como aplicación Archivo "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/__init__.py", línea 2, en desde .connect import * Archivo "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/connect.py", línea 13, en de IPython.core.profiledir importar ProfileDir Archivo "/home/hu-mka/.local/lib/python2.7/site-packages/IPython/__init__.py", línea 48, en desde la aplicación de importación .core.application Archivo "/home/hu-mka/.local/lib/python2.7/site-packages/IPython/core/application.py", línea 23, en de la aplicación de importación traitlets.config.application, catch_config_error Archivo "/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/__init__.py", línea 1, en de .traitlets importar * Archivo "/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/traitlets.py", línea 49, en import enum ImportError: ningún módulo llamado enum El problema era que en el enlace simbólico en / usr / bin / python apuntaba a python2. Solución: cd / usr / bin / sudo ln -sf python3 python Con suerte, el uso de Python 2 desaparecerá por completo pronto. | Obtuve este problema al instalar la biblioteca de transformadores de HuggingFace. Se debió al hecho de que el paquete enum34 se instaló en mi entorno, que anulaba la enumeración incorporada en Python. Este paquete probablemente fue instalado por algo en cuanto a compatibilidad con versiones posteriores, que ya no es necesario con Python 3.6+. Entonces la solución es simplemente, desinstalar pip -y enum34 | Desafortunadamente, ninguna de las sugerencias me ayudó, pero después de buscar en Google este pip instalar aenum me lo resolvió | Si alguien tiene este problema al intentar ejecutar el kernel de Jupyter desde un virtualenv, simplemente agregue el PYTHONPATH correcto a kernel.json de su kernel virtualenv (Python 3 en el ejemplo): { "argv": [ "/usr/local/Cellar/python/3.6.5/bin/python3.6", "-metro", "ipykernel_launcher", "-F", "{connection_file}" ], "display_name": "Python 3 (TensorFlow)", "idioma": "python", "env": { "PYTHONPATH": "/Users/dimitrijer/git/mlai/.venv/lib/python3.6:/Users/dimitrijer/git/mlai/.venv/lib/python3.6/lib-dynload:/usr/local/ Cellar / python / 3.6.5 / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6: /Users/dimitrijer/git/mlai/.venv/lib/python3.6/site-packages " } } | Tu respuesta StackExchange.ifUsing ("editor", function () { StackExchange.using ("editor externo", función () { StackExchange.using ("fragmentos", función () { StackExchange.snippets.init (); }); }); }, "fragmentos de código"); StackExchange.ready (function () { var channelOptions = { etiquetas: "" .split (""), id: "1" }; initTagRenderer ("". split (""), "" .split (""), channelOptions); StackExchange.using ("editor externo", función () { // Debe activar el editor después de los fragmentos, si los fragmentos están habilitados if (StackExchange.settings.snippets.snippetsEnabled) { StackExchange.using ("fragmentos", función () { createEditor (); }); } else { createEditor (); } }); function createEditor () { StackExchange.prepareEditor ({ useStacksEditor: false, heartbeatType: 'respuesta', autoActivateHeartbeat: falso, convertImagesToLinks: verdadero, noModals: cierto, showLowRepImageUploadWarning: true, reputacionToPostImages: 10, bindNavPrevention: verdadero, sufijo: "", imageUploader: { brandingHtml: "Desarrollado por \ u003ca href = \" https: //imgur.com/ \ "\ u003e \ u003csvg class = \" svg-icon \ "width = \" 50 \ "height = \" 18 \ "viewBox = \ "0 0 50 18 \" fill = \ "none \" xmlns = \ "http: //www.w3.org/2000/svg \" \ u003e \ u003cpath d = \ "M46.1709 9.17788C46.1709 8.26454 46.2665 7.94324 47.1084 7.58816C47.4091 7.46349 47.7169 7.36433 48.0099 7.26993C48.9099 6.97997 49.672 6.73443 49.672 5.93063C49.672 5.22043 48.98324.61182 48.1414 4.61182C47.4335 4.61182 46.7256 4.91628 46.0943 5.50789C45.7307 4.9328 45.2525 4.66231 44.6595 4.66231C43.6264 4.66231 43.1481 5.28821 43.1481 6.59048V11.9512C43.1481 13.2535 \ 43.62645 13.69.896.296. / \ u003e \ u003cpath d = \ "M32.492 10.1419C32.492 12.6954 34.1182 14.0484 37.0451 14.0484C39.9723 14.0484 41.5985 12.6954 41.5985 10.1419V6.59049C41.5985 5.28821 41.1394 4.66232 40.10.57326232C3290 .5948 10.8521 38.2696 11.5455 37.0451 11.5455C35.8209 11.5455 35.4954 10.8521 35.4954 9.60062V6.59049C35.4954 5.28821 35.0173 4.66232 34.0034 4.66232C32.9703 4.66232 32.492 5.28821 32.492 \ u00odc 6.59049-regla = \ "clip-rule = \" evenodd \ "d = \" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6.59049C30.9615 5.28821 30.48336231C30.9615 5.28821 30.48336231C 30.428.99 4.6136231C 4.9497 8 28.1109 5.50789C27.499 4.86533 26.7335 4.56087 25.7005 4.56087C23.1369 4.56087 21.0134 6.57349 21.0134 9.27932C21.0134 11.9852 23.003 13.913 25.3754 13.913C26.5612 13.913 27.4607 13.4902 1216C26.5612 13.913 27.4607 13.4902 1216C26.5612 13.913 27.4607 13.4902 1216C26.5612 13.913 27.4607 13.4902 1216.728.71 1210.830 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.9821 23.5661 14.7787C23.176 14.6393 22.8472 14.5218 22.5437 14.5218C21.7977 14.5218 21.2429 15.0124.63 16.722.1329 21.2429 15.0126.99 16.722.1329 21.2429 15.0124.99 16.722.1329 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 28.0918 9.27932C28.0918 10.6321 27.2311 11.5116 26.1024 11.5116C24.9737 11.5116 24.1317 10.6491 24.1317 9.27932Z "/ \ u003e \ u003,25c16.802" / \ u003e \ u003.25c16.802 "/ \ u003e \ u003.25c16.802.80.280.28 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62866 16.4027 4.62866C15.1594 4.62866 14.279 4.98375 13.3609 5.88013C12.653 5.05154 11.6581 4.62866 10.3573 4.62866C9.34336 4.62866 8.57809 4.89931 7.9466 5.5079C7.58314 4.9328 7.10506 4.66232 6.51203 4.66232C5.47873 4.66232 5.00066 5.28821 5.00066 6.59049V11.9512C5.00066 13.2535 5.4781123 13.896296290 0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.9157 13.2535 13.9157 11.9517C13.3907.916 V11.9512Z \ "/ \ u003e \ u003cpath d = \" M3.31675 6.59049C3.31675 5.28821 2.83866 4.66232 1.82471 4.66232C0.791758 4.66232 0.313354 5.28821 0.313354 6.59049V11.9512C0.313354 13.255735 0.791758 13.816962 1.8C2471 3.31675 11.9512V6.59049Z \ "/ \ u003e \ u003cpath d = \" M1.87209 0.400291C0.843612 0.400291 0 1.1159 0 1.98861C0 2.87869 0.822846 3.57676 1.87209 3.57676C2.90056 3.57676 3.7234 2.87869 3.7234 1.98861C3.7234 1.1159 2.90056 0.400291 1.87209 0.400291Z \ "fill = \" # 1BB76E \ "/ \ u003e \ u003c / svg \ u003e \ u003c / a \ u003e", contentPolicyHtml: "Contribuciones de usuario con licencia bajo \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "\ u003e (política de contenido) \ u003c / a \ u003e", allowUrls: verdadero }, onDemand: verdadero, discardSelector: ".discard-answer" , inmediatamenteShowMarkdownHelp: true, enableTables: true, enableSnippets: true }); } }); ¡Gracias por contribuir con una respuesta a Stack Overflow! Asegúrese de responder la pregunta. ¡Proporcione detalles y comparta su investigación! Pero evita ... Pedir ayuda, aclaraciones o responder a otras respuestas. Hacer declaraciones basadas en opiniones; respóndelos con referencias o experiencia personal. Para obtener más información, consulte nuestros consejos sobre cómo escribir buenas respuestas. Borrador guardado Borrador descartado Regístrate o inicia sesión StackExchange.ready (function () { StackExchange.helpers.onClickDraftSave ('# login-link'); }); Regístrese con Google Registrarse usando Facebook Regístrese con correo electrónico y contraseña Enviar Publicar como invitado Nombre Email Requerido, pero nunca mostrado StackExchange.ready ( function () { StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f43124775% 2fwhy-python-3-6-1-throws-attributeerror-module-enum-has- no-attribute-intflag% 23new-answer ',' question_page '); } ); Publicar como invitado Nombre Email Requerido, pero nunca mostrado Publica tu respuesta Descarte Al hacer clic en "Publicar su respuesta", acepta nuestros términos de servicio, política de privacidad y política de cookies. No es la respuesta que estás buscando? Lea otras preguntas con la etiqueta python python-3.x enums python-3.6 attributeerror o haga su propia pregunta.